import request from '../utils/request'

/**
 * 添加收藏
 * @param {Object} data - 收藏数据，包含type和targetId
 * @returns {Promise}
 */
export function addCollection(data) {
  return request({
    url: '/collections',
    method: 'post',
    data
  })
}

/**
 * 取消收藏
 * @param {Object} data - 收藏数据，包含type和targetId
 * @returns {Promise}
 */
export function cancelCollection(data) {
  return request({
    url: '/collections',
    method: 'delete',
    data
  })
}

/**
 * 检查是否已收藏
 * @param {Number} type - 收藏类型（1-问题，2-回答）
 * @param {Number} targetId - 收藏目标ID
 * @returns {Promise}
 */
export function checkCollected(type, targetId) {
  return request({
    url: '/collections/status',
    method: 'get',
    params: { type, targetId }
  })
}

/**
 * 获取用户收藏的问题列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getCollectedQuestions(params) {
  return request({
    url: '/collections/questions',
    method: 'get',
    params
  })
}

// 兼容旧版API的方法，调用新API
/**
 * 收藏问题
 * @param {Number} questionId - 问题ID
 * @returns {Promise}
 */
export function collectQuestion(questionId) {
  return addCollection({
    type: 1, // 1表示问题
    targetId: questionId
  })
}

/**
 * 取消收藏问题
 * @param {Number} questionId - 问题ID
 * @returns {Promise}
 */
export function cancelCollect(questionId) {
  return cancelCollection({
    type: 1, // 1表示问题
    targetId: questionId
  })
}

/**
 * 检查问题是否已收藏
 * @param {Number} questionId - 问题ID
 * @returns {Promise}
 */
export function checkQuestionCollected(questionId) {
  return checkCollected(1, questionId)
} 